package com.wanghaixin.controller;

import com.wanghaixin.dto.DataGridResult;
import com.wanghaixin.dto.QueryDTO;
import com.wanghaixin.pojo.Tag;
import com.wanghaixin.service.TagService;
import com.wanghaixin.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @Auther: 王海新
 * @Date: 2020/10/29 08:53
 * @Description: 标签管理
 */
@Controller
public class TagController {
    @Autowired
    TagService tagService;

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  8:54  2020/10/29
     * @Version:  1.0.0
     * @Description:  分页查询功能 /排序 /搜索
     */
    @RequestMapping("/sys/tag/list")
    @ResponseBody
    public DataGridResult findTag(QueryDTO queryDTO){
        return tagService.findByPage(queryDTO);
    }

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  9:02  2020/10/29
     * @Version:  1.0.0
     * @Description:  删除标签 @RequestBody利用此标签是因为前端是用json传递的数据
     */
    @RequestMapping("/sys/tag/del")
    @ResponseBody
    public R deleteTag(@RequestBody List<Integer> ids){
        for (Integer id : ids) {
            int i = tagService.deleteTag(id);
        }
        return R.ok() ;
    }

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  9:07  2020/10/29
     * @Version:  1.0.0
     * @Description:  添加操作
     */
    @RequestMapping("/sys/tag/save")
    @ResponseBody
    public R addTag(@RequestBody Tag tag){
        int i = tagService.addTag(tag);
        return i>0 ? R.ok() : R.error("添加失败");
    }
    
    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  9:10  2020/10/29
     * @Version:  1.0.0
     * @Description:  根据id 查询单条数据 根据接口可知是基于restful风格的接口
     */
    @RequestMapping("/sys/tag/info/{id}")
    @ResponseBody
    public R findById(@PathVariable("id") Integer id){
        Tag byId = tagService.findById(id);
        return R.ok().put("tag",byId);
    }

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  9:15  2020/10/29
     * @Version:  1.0.0
     * @Description:  修改功能
     */
    @RequestMapping("/sys/tag/update")
    @ResponseBody
    public R updateTag(@RequestBody Tag tag){
        int i = tagService.updateTag(tag);
        return i>0 ? R.ok() : R.error("更新失败");
    }



}
